package com.aspose.cells;

import java.util.ArrayList;

public class ColumnCollection extends CollectionBase {
   Column b;
   private double c;
   private Worksheet d;

   ColumnCollection(Worksheet sheet, double defColWidth) {
      this.d = sheet;
      this.c = defColWidth;
   }

   Column a() {
      if (this.b == null) {
         this.b = new Column(0, this.d, this.c);
      }

      return this.b;
   }

   double b() {
      return this.c;
   }

   void a(double var1) {
      this.c = var1;
   }

   int a(int var1) {
      return this.b != null && this.b.getIndex() <= var1 && this.b.e() ? this.b.c() : -1;
   }

   boolean b(int var1) {
      return this.b != null && this.b.getIndex() <= var1 ? this.b.isHidden() : false;
   }

   double a(int var1, boolean var2) {
      if (this.b != null && this.b.getIndex() <= var1) {
         if (var2) {
            return this.b.a;
         } else {
            return this.b.isHidden() ? 0.0D : this.b.a;
         }
      } else {
         return this.c;
      }
   }

   /** @deprecated */
   public Column getByIndex(int index) {
      return (Column)this.a.get(index);
   }

   public Column getColumnByIndex(int index) {
      return (Column)this.a.get(index);
   }

   Column c(int var1) {
      int var2 = this.e(var1);
      return var2 < 0 ? null : (Column)this.a.get(var2);
   }

   public Column get(int columnIndex) {
      int var2 = this.e(columnIndex);
      return var2 < 0 ? this.a(columnIndex, -var2 - 1) : (Column)this.a.get(var2);
   }

   Column d(int var1) {
      Column var2 = new Column((short)var1, this.d, this.c);
      com.aspose.cells.b.a.a.ze.a(this.a, (Object)var2);
      return var2;
   }

   Column a(int var1, int var2) {
      Column var3 = new Column((short)var1, this.d, this.c, this.b);
      this.a.add(var2, var3);
      return var3;
   }

   int e(int var1) {
      return this.getCount() == 0 ? -1 : this.a(var1, 0, this.getCount() - 1);
   }

   int a(int var1, int var2, int var3) {
      if (var2 <= var3 && this.getCount() >= 1) {
         while(true) {
            int var4 = (var2 + var3) / 2;
            Column var5 = (Column)this.a.get(var4);
            if (var5.getIndex() == var1) {
               return var4;
            }

            if (var5.getIndex() < var1) {
               if (var4 == var3) {
                  return -var4 - 2;
               }

               var2 = var4 + 1;
            } else {
               if (var4 == var2) {
                  return -var4 - 1;
               }

               var3 = var4 - 1;
            }
         }
      } else {
         return -var2 - 1;
      }
   }

   void b(int var1, int var2) {
      if (var2 != 0) {
         if (this.b != null && this.b.getIndex() > var1) {
            this.b.a(Math.max(var1, this.b.getIndex() - var2));
         }

         if (this.getCount() != 0) {
            int var3;
            for(var3 = 0; var3 < var2; ++var3) {
               int var4 = this.e(var1 + var3);
               if (var4 > -1) {
                  this.a.remove(var4);
               }
            }

            for(var3 = 0; var3 < this.getCount(); ++var3) {
               Column var5 = (Column)this.a.get(var3);
               if (var5.getIndex() > var1) {
                  var5.a(var5.getIndex() - var2);
               }
            }

         }
      }
   }

   void c(int var1, int var2) {
      if (var2 != 0) {
         if (this.b != null && this.b.getIndex() > var1) {
            if (this.b.getIndex() + var2 < 16383) {
               this.b.a(this.b.getIndex() + var2);
            } else {
               this.b = null;
            }
         }

         if (this.getCount() != 0) {
            int var3;
            Column var4;
            label46:
            for(var3 = 0; var3 < this.getCount(); ++var3) {
               var4 = this.getColumnByIndex(var3);
               if (var4.getIndex() >= var1) {
                  if (var4.getIndex() + var2 > 16383) {
                     while(true) {
                        if (var3 >= this.getCount()) {
                           break label46;
                        }

                        this.removeAt(var3);
                     }
                  }

                  var4.a(var4.getIndex() + var2);
               }
            }

            if (var1 > 0) {
               var3 = this.e(var1 - 1);
               if (var3 > -1) {
                  var4 = this.getColumnByIndex(var3);

                  for(int var5 = 0; var5 < var2; ++var5) {
                     Column var6 = new Column((short)(var1 + var5), this.d, this.c);
                     var6.c(var4.c());
                     var6.a(var4.b());
                     var6.setWidth(var4.getWidth());
                     this.a.add(var3 + var5 + 1, var6);
                  }
               }
            }
         }

      }
   }

   ArrayList c() {
      ArrayList var1 = new ArrayList();
      Column var2 = this.b;
      int var3 = 16383;
      if (var2 != null) {
         if (var2.j()) {
            Column var4 = new Column(var2.getIndex(), this.d, this.c, var2);
            var2 = var4;
            var3 = var4.getIndex();
            if (var3 > 256) {
               var3 = 256;
            }
         } else {
            var2 = null;
         }
      }

      boolean var10 = false;
      int var5 = 0;

      for(int var6 = 0; var6 < this.getCount(); ++var6) {
         Column var7 = this.getColumnByIndex(var6);
         if (var7.getIndex() - var5 != 0 && var2 != null && var7.getIndex() > var3) {
            if (var5 < var3) {
               var5 = var3;
            }

            zkc var8 = new zkc();
            var8.a(var2, this.d.c().I(), this.d.c().H(), var5, var7.getIndex() - 1);
            com.aspose.cells.b.a.a.ze.a(var1, (Object)var8);
         }

         int var11 = var7.getIndex();
         int var13 = 0;
         ++var6;

         while(var6 < this.getCount()) {
            Column var9 = this.getColumnByIndex(var6);
            if (var9.getIndex() != var7.getIndex() + var13 + 1 || !var7.b(var9)) {
               --var6;
               break;
            }

            ++var13;
            ++var6;
         }

         zkc var14 = new zkc();
         var14.a(var7, this.d.c().I(), this.d.c().H(), var11, var11 + var13);
         com.aspose.cells.b.a.a.ze.a(var1, (Object)var14);
         var5 = var11 + var13 + 1;
      }

      if (var2 != null) {
         if (var5 < var3) {
            var5 = var3;
         }

         zkc var12 = new zkc();
         var12.a(var2, this.d.c().I(), this.d.c().H(), var5, 256);
         com.aspose.cells.b.a.a.ze.a(var1, (Object)var12);
      }

      return var1;
   }

   void a(ColumnCollection var1, CopyOptions var2) {
      this.c = var1.c;
      this.a.clear();

      for(int var3 = 0; var3 < var1.getCount(); ++var3) {
         Column var4 = var1.getColumnByIndex(var3);
         Column var5 = this.d(var4.getIndex());
         var5.a(var4, var2);
      }

      if (var1.b != null) {
         this.b = new Column(var1.b.getIndex(), this.d, this.c);
         this.b.a(var1.b, var2);
      }

   }

   double f(int var1) {
      int var2 = this.e(var1);
      if (var2 > -1) {
         Column var3 = (Column)this.a.get(var2);
         return var3.isHidden() ? 0.0D : var3.getWidth();
      } else {
         return this.a(var1, false);
      }
   }

   int a(int var1, int var2, zagh var3) {
      int var4 = this.getCount();
      if (var4 < 1) {
         if (this.b != null && var2 >= this.b.getIndex()) {
            if (var1 >= this.b.getIndex()) {
               return this.b.isHidden() ? 0 : var3.a(this.b.a) * (var2 - var1 + 1);
            } else {
               return this.b.isHidden() ? var3.a(this.c) * (this.b.getIndex() - var1) : var3.a(this.c) * (this.b.getIndex() - var1) + var3.a(this.b.a) * (var2 - this.b.getIndex() + 1);
            }
         } else {
            return var3.a(this.c) * (var2 - var1 + 1);
         }
      } else {
         int var5 = 0;
         int var6;
         if (var1 == 0) {
            var6 = 0;
         } else {
            var6 = this.e(var1);
            if (var6 < 0) {
               var6 = -var6 - 1;
            }
         }

         int var7;
         int var8;
         Column var9;
         if (this.b != null && var2 >= this.b.getIndex()) {
            var8 = this.b.getIndex();
            if (var1 < var8) {
               var7 = var3.a(this.c);
               int var11 = this.a(var8, var6, var4 - 1);
               if (var11 < 0) {
                  var11 = -var11 - 1;
               }

               while(var6 < var11) {
                  Column var10 = (Column)this.a.get(var6);
                  var8 = var10.getIndex();
                  if (var8 > var1) {
                     var5 += (var8 - var1) * var7;
                  }

                  if (!var10.isHidden()) {
                     var5 += var3.a(var10.a);
                  }

                  var1 = var8 + 1;
                  ++var6;
               }

               var8 = this.b.getIndex();
               if (var1 < var8) {
                  var5 += (var8 - var1) * var7;
                  var1 = var8;
               }
            }

            if (this.b.isHidden()) {
               var7 = 0;
            } else {
               var7 = var3.a(this.b.a);
            }

            while(var6 < var4) {
               var9 = (Column)this.a.get(var6);
               var8 = var9.getIndex();
               if (var8 > var2) {
                  break;
               }

               if (var8 > var1) {
                  var5 += (var8 - var1) * var7;
               }

               if (!var9.isHidden()) {
                  var5 += var3.a(var9.a);
               }

               if (var8 == var2) {
                  return var5;
               }

               var1 = var8 + 1;
               ++var6;
            }

            return var5 + (var2 - var1 + 1) * var7;
         } else {
            for(var7 = var3.a(this.c); var6 < var4; ++var6) {
               var9 = (Column)this.a.get(var6);
               var8 = var9.getIndex();
               if (var8 > var2) {
                  break;
               }

               if (var8 > var1) {
                  var5 += (var8 - var1) * var7;
               }

               if (!var9.isHidden()) {
                  var5 += var3.a(var9.a);
               }

               if (var8 == var2) {
                  return var5;
               }

               var1 = var8 + 1;
            }

            return var5 + (var2 - var1 + 1) * var7;
         }
      }
   }

   void a(int[] var1, zagh var2) {
      int var3 = var1[0];
      int var4;
      int var5;
      int var6;
      int var7;
      int var8;
      int var9;
      int var10;
      if (var1[2] < 0) {
         var4 = -var1[2] - var1[1];
         if (var4 <= 0) {
            var1[2] = -var4;
            var1[1] = 0;
            this.a(var1, var2);
         } else {
            --var3;
            if (var3 < 0) {
               var1[1] = 0;
               var1[2] = var2.a(this.f(0));
            } else {
               var5 = -1;
               if (this.getCount() > 0) {
                  if (this.b != null) {
                     var7 = this.b.getIndex();
                     if (var3 < var7) {
                        var5 = var2.a(this.c);
                     } else if (!this.b.isHidden()) {
                        var5 = var2.a(this.b.a);
                     }
                  } else {
                     var7 = Integer.MAX_VALUE;
                     var5 = var2.a(this.c);
                  }

                  var8 = this.e(var3);
                  if (var8 < 0) {
                     var8 = -var8 - 2;
                  }

                  if (var8 > -1) {
                     while(var8 > -1) {
                        Column var13 = (Column)this.a.get(var8);
                        var10 = var13.getIndex();
                        if (var3 >= var7 && var10 < var7) {
                           if (var5 > 0) {
                              var6 = (var4 - 1) / var5;
                              if (var3 - var6 >= var7) {
                                 var4 -= var6 * var5;
                                 var1[0] = var3 - var6;
                                 var1[1] = var5 - var4;
                                 var1[2] = var4;
                                 return;
                              }

                              var4 -= (var3 - var7 + 1) * var5;
                           }

                           var3 = var7 - 1;
                           var5 = var2.a(this.c);
                        }

                        if (var10 < var3 && var5 > 0) {
                           var6 = (var4 - 1) / var5;
                           if (var3 - var6 > var10) {
                              var4 -= var6 * var5;
                              var1[0] = var3 - var6;
                              var1[1] = var5 - var4;
                              var1[2] = var4;
                              return;
                           }

                           var4 -= (var3 - var10) * var5;
                        }

                        if (!var13.isHidden()) {
                           var9 = var2.a(var13.a);
                           if (var4 <= var9) {
                              var1[0] = var10;
                              var1[1] = var9 - var4;
                              var1[2] = var4;
                              return;
                           }

                           var4 -= var9;
                        }

                        if (var10 == var7) {
                           var5 = var2.a(this.c);
                        }

                        var3 = var10 - 1;
                        --var8;
                     }
                  }
               }

               if (this.b != null && var3 >= this.b.getIndex()) {
                  if (!this.b.isHidden()) {
                     var7 = this.b.getIndex();
                     if (var5 < 0) {
                        var5 = var2.a(this.b.a);
                     }

                     if (var5 > 0) {
                        var6 = (var4 - 1) / var5;
                        if (var3 - var6 >= var7) {
                           var4 -= var6 * var5;
                           var1[0] = var3 - var6;
                           var1[1] = var5 - var4;
                           var1[2] = var4;
                           return;
                        }

                        var4 -= (var3 - var7 + 1) * var5;
                     }

                     var3 = var7 - 1;
                  } else {
                     var3 = this.b.getIndex() - 1;
                  }

                  var5 = var2.a(this.c);
               } else if (var5 < 0) {
                  var5 = var2.a(this.c);
               }

               if (var5 < 1) {
                  var1[0] = 0;
                  var1[1] = var4;
                  var1[2] = -var4;
               } else {
                  var6 = (var4 - 1) / var5;
                  if (var3 < var6) {
                     var1[0] = 0;
                     var1[1] = 0;
                     var1[2] = var5;
                  } else {
                     var4 -= var6 * var5;
                     var1[0] = var3 - var6;
                     var1[1] = var5 - var4;
                     var1[2] = var4;
                  }
               }
            }
         }
      } else {
         var4 = var1[1] + var1[2];
         var5 = -1;
         var6 = this.getCount();
         if (var6 > 0) {
            if (var3 == 0) {
               var8 = 0;
            } else {
               var8 = this.a(var3, 0, var6 - 1);
               if (var8 < 0) {
                  var8 = -var8 - 1;
               }
            }

            if (this.b != null) {
               var9 = this.b.getIndex();
               if (var3 < var9) {
                  var5 = var2.a(this.c);
               } else if (!this.b.isHidden()) {
                  var5 = var2.a(this.b.a);
               }
            } else {
               var9 = Integer.MAX_VALUE;
               var5 = var2.a(this.c);
            }

            if (var8 < var6) {
               for(; var8 < var6; ++var8) {
                  Column var12 = (Column)this.a.get(var8);
                  int var11 = var12.getIndex();
                  if (var3 < var9 && var11 >= var9) {
                     if (var5 > 0) {
                        var7 = (var4 - 1) / var5;
                        if (var3 + var7 < var9) {
                           var4 -= var7 * var5;
                           var1[0] = var3 + var7;
                           var1[1] = var4;
                           var1[2] = var5 - var4;
                           return;
                        }

                        var4 -= (var9 - var3) * var5;
                     }

                     var3 = var9;
                     if (this.b.isHidden()) {
                        var5 = 0;
                     } else {
                        var5 = var2.a(this.b.a);
                     }
                  }

                  if (var11 > var3 && var5 > 0) {
                     var7 = (var4 - 1) / var5;
                     if (var3 + var7 < var11) {
                        var4 -= var7 * var5;
                        var1[0] = var3 + var7;
                        var1[1] = var4;
                        var1[2] = var5 - var4;
                        return;
                     }

                     var4 -= (var11 - var3) * var5;
                  }

                  if (!var12.isHidden()) {
                     var10 = var2.a(var12.a);
                     if (var4 <= var10) {
                        var1[0] = var11;
                        var1[1] = var4;
                        var1[2] = var10 - var4;
                        return;
                     }

                     var4 -= var10;
                  }

                  var3 = var11 + 1;
                  if (var3 == var9) {
                     if (this.b.isHidden()) {
                        var5 = 0;
                     } else {
                        var5 = var2.a(this.b.a);
                     }
                  }
               }
            }
         }

         if (this.b == null) {
            if (var5 < 0) {
               var5 = var2.a(this.c);
            }

            if (var5 < 1) {
               var1[0] = var3;
               var1[1] = var4;
               var1[2] = -var4;
            } else {
               var7 = (var4 - 1) / var5;
               var4 -= var7 * var5;
               var1[0] = var3 + var7;
               var1[1] = var4;
               var1[2] = var5 - var4;
            }
         } else {
            var8 = this.b.getIndex();
            if (var3 < var8) {
               if (var5 < 0) {
                  var5 = var2.a(this.c);
               }

               if (var5 > 0) {
                  var7 = (var4 - 1) / var5;
                  if (var3 + var7 < var8) {
                     var4 -= var7 * var5;
                     var1[0] = var3 + var7;
                     var1[1] = var4;
                     var1[2] = var5 - var4;
                     return;
                  }

                  var4 -= (var8 - var3) * var5;
               }

               if (this.b.isHidden()) {
                  var1[0] = var8;
                  var1[1] = var4;
                  var1[2] = -var4;
                  return;
               }

               if (this.b.isHidden()) {
                  var5 = 0;
               } else {
                  var5 = var2.a(this.b.a);
               }

               var3 = var8;
            } else {
               if (this.b.isHidden()) {
                  var1[0] = var8;
                  var1[1] = var4;
                  var1[2] = -var4;
                  return;
               }

               if (var5 < 0) {
                  var5 = var2.a(this.b.a);
               }
            }

            if (var5 < 1) {
               var1[0] = var3;
               var1[1] = var4;
               var1[2] = -var4;
            } else {
               var7 = (var4 - 1) / var5;
               var4 -= var7 * var5;
               var1[0] = var3 + var7;
               var1[1] = var4;
               var1[2] = var5 - var4;
            }
         }
      }
   }
}
